package com.cursor.repository;

import com.cursor.entity.CursorAccount;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

import java.util.Optional;

@Repository
public interface CursorAccountRepository extends JpaRepository<CursorAccount, Long> {
    
    /**
     * 查找一个可用的账号（未分配且状态为"已激活"）
     * @return 可用的Cursor账号
     */
    @Query(value = "SELECT * FROM cursor_accounts WHERE is_assigned = false AND status = '已激活' LIMIT 1", nativeQuery = true)
    Optional<CursorAccount> findOneAvailableAccount();
    
    /**
     * 根据分配给的秘钥查找账号
     * @param key 秘钥
     * @return 已分配给该秘钥的账号
     */
    Optional<CursorAccount> findByAssignedTo(String key);
    
    /**
     * 根据邮箱查找账号
     * @param email 邮箱地址
     * @return 账号信息
     */
    Optional<CursorAccount> findByEmail(String email);
    
    /**
     * 计算未分配账号的数量
     * @return 未分配账号数量
     */
    long countByIsAssignedFalseAndStatusEquals(String status);
} 